//
// Headings
// Don't extend h elements because they might be prefixed or under parent selector
//
.#{$class-prefix}h1 {
  // @extend h1;
  @extend %heading;
  @include font-size($h1-font-size);
}

.#{$class-prefix}h2 {
  // @extend h2;
  @extend %heading;
  @include font-size($h2-font-size);
}

.#{$class-prefix}h3 {
  // @extend h3;
  @extend %heading;
  @include font-size($h3-font-size);
}

.#{$class-prefix}h4 {
  // @extend h4;
  @extend %heading;
  @include font-size($h4-font-size);
}

.#{$class-prefix}h5 {
  // @extend h5;
  @extend %heading;
  @include font-size($h5-font-size);
}

.#{$class-prefix}h6 {
  // @extend h6;
  @extend %heading;
  @include font-size($h6-font-size);
}

.#{$class-prefix}lead {
  font-weight: $lead-font-weight;
  @include font-size($lead-font-size);
}

// Type display classes
@each $display, $font-size in $display-font-sizes {
  .#{$class-prefix}display-#{$display} {
    font-family: $display-font-family;
    font-style: $display-font-style;
    font-weight: $display-font-weight;
    line-height: $display-line-height;
    @include font-size($font-size);
  }
}

//
// Emphasis
//
.#{$class-prefix}small {
  @extend small;
}

.#{$class-prefix}mark {
  @extend mark;
}

//
// Lists
//

.#{$class-prefix}list-unstyled {
  @include list-unstyled();
}

// Inline turns list items into inline-block
.#{$class-prefix}list-inline {
  @include list-unstyled();
}
.#{$class-prefix}list-inline-item {
  display: inline-block;

  &:not(:last-child) {
    margin-right: $list-inline-padding;
  }
}


//
// Misc
//

// Builds on `abbr`
.#{$class-prefix}initialism {
  @include font-size($initialism-font-size);
  text-transform: uppercase;
}

// Blockquotes
.#{$class-prefix}blockquote {
  margin-bottom: $blockquote-margin-y;
  @include font-size($blockquote-font-size);

  > :last-child {
    margin-bottom: 0;
  }
}

.#{$class-prefix}blockquote-footer {
  margin-top: -$blockquote-margin-y;
  margin-bottom: $blockquote-margin-y;
  @include font-size($blockquote-footer-font-size);
  color: $blockquote-footer-color;

  &::before {
    content: "\2014\00A0"; // em dash, nbsp
  }
}
